package com.feemanage.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.feemanage.domain.bo.PayoutDetailsBo;
import com.framework.config.BigDecimalSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Data
@ApiModel("经费支出编辑/查看展示")
public class ProjectPayoutVo {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主表id")
    private String id; //id

    @ApiModelProperty("项目id")
    private String projectId; //项目id

    @ApiModelProperty("项目名称")
    private String projectName; //项目名称

    @ApiModelProperty("项目分类")
    private String projectClass; //项目分类

    @ApiModelProperty("单位名称")
    private String unitName; //单位名称

    @ApiModelProperty("负责人")
    private String chargerName; //负责人名称

    @ApiModelProperty("合同金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal feeAuthorize; //合同金额

    @ApiModelProperty("报销人id")
    private String payoutPersonId; //报销人编号

    @ApiModelProperty("报销人名称")
    private String payoutPersonName;//报销人名称

    @ApiModelProperty("财务项目编号")
    private String feeCode;//报销单号-财务项目编号


    @ApiModelProperty("支出金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal payoutFee; //支出金额

    @ApiModelProperty("支出时间")
    private LocalDate payoutDate; //支出时间

    @ApiModelProperty("支出科目")
    private String payoutSubjectName; //支出科目


    @ApiModelProperty("摘要")
    private String note; //摘要


    @ApiModelProperty("审核状态")
    private String checkstatus; //审核状态

    @ApiModelProperty("审核时间")
    private String checkdate;

    @ApiModelProperty("审核人")
    private String checker;

    /** 页面上点击按钮的状态 */
    @ApiModelProperty("页面上点击按钮的状态")
    private String status;

    @ApiModelProperty("流程实例id")
    private String processInstanceId;

    @ApiModelProperty("流程节点id")
    private String taskId;

    @ApiModelProperty("是否是审核人")
    private Boolean isAuditor;

    private List<PayoutDetailsBo> payoutDetails;

}
